package cn.appsys.dao.appinfo;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.appsys.pojo.AppInfo;

public interface AppInfoMapper {

	/**
	 * 查询所有AppInfo数据根据条件
	 * 
	 * @param _querySoftwareName
	 *            名字
	 * @param _queryStatus
	 *            状态
	 * @param currentPageNo
	 *            起始行数
	 * @param _queryCategoryLevel1
	 *            一级分类
	 * @param _queryCategoryLevel2
	 *            二级分类
	 * @param _queryCategoryLevel3
	 *            三级分类
	 * @param pageSize
	 *            结束行数
	 * @return
	 */
	public List<AppInfo> getAppInfoList(@Param(value = "softwareName") String _querySoftwareName,
			@Param(value = "status") String _queryStatus, @Param(value = "flatformId") String flatformId,
			@Param(value = "categoryLevel1") String _queryCategoryLevel1,
			@Param(value = "categoryLevel2") String _queryCategoryLevel2,
			@Param(value = "categoryLevel3") String _queryCategoryLevel3, @Param(value = "pageSize") Integer pageSize,
			@Param(value = "from") Integer currentPageNo, @Param("devId") Integer devId);

	/**
	 * 根据条件获取表的总数
	 * 
	 * @param _querySoftwareName
	 * @param _queryStatus
	 * @param flatformId
	 * @param _queryCategoryLevel1
	 * @param _queryCategoryLevel2
	 * @param _queryCategoryLevel3
	 * @return
	 */
	public int getAppInfoCount(@Param(value = "softwareName") String _querySoftwareName,
			@Param(value = "status") String _queryStatus, @Param(value = "flatformId") String flatformId,
			@Param(value = "categoryLevel1") String _queryCategoryLevel1,
			@Param(value = "categoryLevel2") String _queryCategoryLevel2,
			@Param(value = "categoryLevel3") String _queryCategoryLevel3, @Param("devId") Integer devId);

	/**
	 * 根据APK号获取Appinfo对象
	 * 
	 * @param APKName
	 * @return
	 */
	public int apkExist(@Param(value = "APKName") String APKName);

	/**
	 * 新增AppInfo
	 * 
	 * @param appInfo
	 * @return
	 */
	public int addAppInfo(AppInfo appInfo);

	/**
	 * 根据id获取AppInfo
	 * 
	 * @param id
	 * @return
	 */
	public AppInfo getAppInfo(@Param(value = "id") Integer id);

	/**
	 * 根据id删除图片
	 * 
	 * @param id
	 * @return
	 */
	public int delFile(@Param(value = "id") Integer id);

	/**
	 * 修改AppInfo
	 * 
	 * @param appInfo
	 * @return
	 */
	public int modifyAppInfo(AppInfo appInfo);

	/**
	 * 更新AppInfo的最新版本
	 * @param id
	 * @param versionId
	 * @return
	 */
	public int updateAppInfoVersion(@Param(value = "id") Integer id, @Param(value = "versionId") Integer versionId);
	
	/**
	 * 删除AppInfo
	 * @return
	 */
	public int delApp(@Param(value = "id") String id);
	
	/**
	 * 更新App状态
	 * @return
	 */
	public int updateAppStatus(@Param(value = "status") Integer status,@Param(value = "id") Integer id);
}
